package cn.bluethink.eguan.model.core;

import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * 系统内置的权限
 * 
 * @title 驿馆+产品权限描述
 * @Copyright 苏州中科蓝迪公司所有(c)2016-2021
 * @version 0.1
 *
 * @note 修订历史： （1）giszyj@126.com于2018年10月06日设计并构建初始版本v1.0.0
 */
public class EgPurview {

    /** 权限：权限设置 */
    public static final int PURVIEW_SET = 1; 
    /** 权限：信息审核 */
    public static final int OBJECT_CHECK = 2;
    /** 权限：任命副盟主 */
    public static final int APPOINT_MANAGER = 4;
    /** 权限：门派充值 */
    public static final int FACTION_RECHARGE = 8;
    /** 权限：门派管理 */
    public static final int FACTION_MG = 16;
    /** 权限：任命副帮主 */
    public static final int APPOINT_VICE_CHEAF = 32;
    /** 权限：成员管理 */
    public static final int MEMBER_MG = 64;
    /** 权限：创建驿馆 */
    public static final int CREATE_TAVERN = 128;
    /** 权限：驿馆管理 */
    public static final int TAVERN_MG = 256;
    /** 权限：任命掌柜 */
    public static final int APPOINT_SHOPKEEPER = 512;
    /** 权限：伙计管理 */
    public static final int STAFF_MG = 1024;
    /** 权限：任务管理 */
    public static final int OKR_TASK_MG = 2048;
    /** 权限：个人悬赏 */
    public static final int PERSONAL_REWARD_TASK = 4096;
    /** 权限：团队悬赏 */
    public static final int TEAM_REWARD_TASK = 8192;
    /** 权限：商人管理 */
    public static final int TRADER_MG = 16384;
    /** 权限：查看天眼 */
    public static final int STATISTIC_VW = 32768;
    /** 权限：服务管理 */
    public static final int SERVICE_MG = 65536;

    /**
     * 权限唯一标识
     */
    private Integer id;

    /**
     * 权限名称
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String name;

    /**
     * 权限的详细描述
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String des = null;

    /**
     * @roseuid 5BB030BE0239
     */
    public EgPurview() {

    }

    public EgPurview(Integer id, String name, String des) {
        this.id = id;
        this.name = name;
        this.des = des;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    public void or(EgPurview purview) {
        this.id = purview.id | this.id;
    }

}
